﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dominio
{
    public class TanqueAceite:Tanque,IMantenimiento
    {
        public int viscosidad { get; set; }

        public TanqueAceite(string desc, int capacidad, int visc, int calidad)
        {
            this.Descripcion = desc;
            this.Capacidad = capacidad;
            this.LitrosDisponibles = 0;
            //this.idTanque = Tanque.idTanque++;
            //_observadores = new List<IObservador>();
            this.Mantenimientos = new List<TareaMantenimiento>();
            this.Borrado = 0;
            this.viscosidad = visc;
            this.Calidad = calidad;
        }


        public override string ToString()
        {
            return this.idTanque + " " + this.Descripcion;
        }


        public void Limpieza(Tanque tanque)
        {
            TareaMantenimiento tarea = new Limpieza();
            tarea.FechaHora = DateTime.Now;
            tarea.Tanque = tanque;
            this.UltimaFechaLimpieza = DateTime.Now;
            this.LitrosDisponibles = 0;
            this.Mantenimientos.Add(tarea);
            tarea.Create();
        }

        public void Reposicion(int Litros, int IdReposicion, DateTime Fecha)
        {
            TareaMantenimiento tarea = new Reposicion(Litros, IdReposicion, Fecha);
            Mantenimientos.Add(tarea);
            this.LitrosDisponibles = Litros;
            tarea.Create();
        }

        public void Tratamiento(Tanque tanque)
        {
            TareaMantenimiento tarea = new Tratamiento();
            tarea.FechaHora = DateTime.Now;
            tarea.Tanque = tanque;
            Mantenimientos.Add(tarea);
            if (this.Calidad < 3)
            {
                this.Calidad = this.Calidad + 2;
            }
            else
            {
                this.Calidad = 5;
            }
            tarea.Create();
        }

        public bool EsValidaCantidadParaReposicion(int CantidadLitros)
        {
            float porcentaje=((LitrosDisponibles + CantidadLitros)/Capacidad)*100;
            if (porcentaje > 90)
            {
                return false;
            }
            return true;
        }
    }
}
